package com.example.blog.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.example.blog.entity.User;

public interface UserMapper {
    /**
     * 通过用户ID查询用户
     */
    User selectByPrimaryKey(Integer userId);
    
    /**
     * 通过登录名查询用户
     */
    User selectByLoginName(String loginName);
    
    /**
     * 查询所有用户
     */
    List<User> selectAll();
    
    /**
     * 通过状态查询用户
     */
    List<User> selectByStatus(String status);
    
    /**
     * 插入用户记录
     */
    int insert(User user);
    
    /**
     * 更新用户记录
     */
    int updateByPrimaryKey(User user);
    
    /**
     * 更新用户状态
     */
    int updateStatus(@Param("userId") Integer userId, @Param("status") String status);
    
    /**
     * 删除用户记录
     */
    int deleteByPrimaryKey(Integer userId);
    
    /**
     * 验证用户登录
     */
    User verifyLogin(@Param("loginName") String loginName, @Param("password") String password);
    
    /**
     * 检查登录名是否存在
     */
    int checkLoginNameExists(String loginName);
    
    /**
     * 检查邮箱是否存在
     */
    int checkEmailExists(String email);
} 